/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ar.com.gestion.tabla;

import java.util.List;

import ar.com.gestion.bo.ProductoBO;
import ar.com.gestion.dominio.Producto;
import ar.com.gestion.springcontext.SpringContext;

/*
 * Javier Abellán. 26 de octubre de 2003
 *
 * ControlTabla.java
 *
 * Clase para el ejemplo de uso del JTable.
 *
 */

/**
 * Clase para modificar el modelo de la tabla.
 */
public class ControlTabla
 {
     /**
      * Constructor. Se le pasa el modelo, al que añade varios elementos y
      * se lo guarda.
      */
	private ProductoBO productoBO ;
	
	public ControlTabla(){}
     public ControlTabla(ModeloTabla modelo)
     {
         this.modelo = modelo;

     }
     
     public void setModelo(ModeloTabla modelo){
    	 this.modelo = modelo;
     }
     
     
     /**
      * Añade una fila en el modelo, al final del mismo
      */
     public void anhadeFila ()
     {
         // Crea una nueva Apunte, construyéndola a base del atributo 
         // numero.
         
         Producto dato =  new Producto();
         dato.setId(0);
         dato.setCodigo("");
         dato.setCantidad(0);
         dato.setPrecio(0);
         dato.setTipo("");
         dato.setMaterial("");
         dato.setTalle(0);
         dato.setDescripcion("");
         dato.setColor("");
         dato.setModelo("");
         dato.setReservado(0);
         modelo.anhadeProducto (dato);
         
         // Incrementa numero para que la siguiente Apunte a añadir sea
         // distinta.
         numero++;
     }
     
     
     /** Elimina la primera fila del modelo */
     public void borraFila ()
     {
         if (modelo.getRowCount() > 0)
            modelo.borraProducto(0);
     }
     
     
     public void refresh(){
    	 
    	 
    	 int rowCount = modelo.getRowCount();
    	 
    	 for (int i = 0; i < rowCount; i++) {
			
    		 modelo.borraProducto(0);
    		 
		}
    	 
    	List<Producto> todosProductos = productoBO.obtenerTodosLosProductos(); 
    	 
    	for (Producto producto : todosProductos) {
			
    		modelo.anhadeProducto(producto);
    		
		}
    	 
    	 
     }
     
     


	public ProductoBO getProductoBO() {
		return productoBO;
	}
	public void setProductoBO(ProductoBO productoBO) {
		this.productoBO = productoBO;
	}

	
	public Producto buscarProductoPorCodigo(String codigo){
		//get value at 1
		for (int i = 0; i < modelo.getColumnCount(); i++) {
			
			String valueAt =(String) modelo.getValueAt(i, 1);
			
			if (valueAt.equals(codigo)){
				Producto producto = modelo.getRowAt(i);
				return producto;
			}
			
		}
		return null;
		
	}




	/** El modelo de la tabla */
     private ModeloTabla modelo = null;
     
     /** Numero que nos servirá para construir Apuntes distintas para la 
      tabla */
     private static int numero = 0;
}